package hy.controller;

import com.alibaba.fastjson.JSON;
import com.alipay.api.AlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;
import hy.beans.AlipayBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/ali")
public class PayController {
    @Autowired
    private AlipayClient alipayClient;
    @RequestMapping("/pay")
    @ResponseBody
    public String alipay(AlipayBean alipayBean) {
        System.out.println(alipayBean);
        // 1.设置请求参数
        AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
        // 页面跳转同步通知页面路径
        //alipayRequest.setReturnUrl(returnUrl);
        // 服务器异步通知页面路径
        //alipayRequest.setNotifyUrl(notifyUrl);
        // 封装参数
        alipayRequest.setBizContent(JSON.toJSONString(alipayBean));
        // 2、请求支付宝进行付款，并获取支付结果
/*
1.POST请求方式提交参数给支付宝接口，在支付宝端进行支付处理。
2.在支付宝接口中，把支付的结果通知给当前网站(成功/失败)，以便更新订单的状态信息
*/
        String result=null;
        try {
            result = alipayClient.pageExecute(alipayRequest).getBody();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
}
